package com.qys.livesMall.app.user.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 用户统计表
 * </p>
 *
 * @author
 * @since 2023-08-01
 */
@Getter
@Setter
@TableName("h2_app_user_statistics_info")
@Schema(name = "UserStatisticsInfo", description = "用户统计表")
public class UserStatisticsInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "123 代 30天新增")
    private Integer recentAdd;

    @Schema(description = "123 代 过期数量")
    private Integer expireNumber;

    @Schema(description = "123 代 30天过期数量")
    private Integer recentExpireNumber;

    @Schema(description = "1~n 过期数量")
    private Integer subordinateExpireNumber;

    @Schema(description = "直推人数")
    private Integer directNumber;

    @Schema(description = "2代人数")
    private Integer twoNumber;

    @Schema(description = "3代人数")
    private Integer threeNumber;

    @Schema(description = "全部人数")
    private Integer allNumber;

    @Schema(description = "充提差额")
    private BigDecimal difference;

    @Schema(description = "充值金额")
    private BigDecimal recharge;

    @Schema(description = "提现金额")
    private BigDecimal withdrawal;

    @Schema(description = "待审核提现金额")
    private BigDecimal pendingWithdrawal;

    @Schema(description = "当现余额")
    private BigDecimal balance;

    @Schema(description = "当前代币")
    private BigDecimal tokens;

    @Schema(description = "提现次数")
    private Integer withdrawalNumber;

    @Schema(description = "充值次数")
    private Integer rechargeNumber;

    @Schema(description = "累计个人收益")
    private BigDecimal cumulative;

    @TableField(exist = false)
    private String superior;

    @Schema(description = "首充日期")
    private LocalDateTime firstCharge;

    @Schema(description = "复冲金额")
    private BigDecimal rechargeMoney;

    @Schema(description = "备注")
    private String notes;

    @Schema(description = "注册人数（当前用户下123级 状态正常+真实）")
    private Integer registerNum;

    @Schema(description = "主播礼物收益")
    private BigDecimal anchorGiftIncome;

    @Schema(description = "主播订单收益")
    private BigDecimal anchorOrderIncome;

    @Schema(description = "123代提现金额")
    private BigDecimal threeWithdrawalAmount;

    @Schema(description = "123代充值金额")
    private BigDecimal threeRechargeAmount;

    @Schema(description = "123代复冲金额")
    private BigDecimal threeRecoilAmount;

    @Schema(description = "123代充提差")
    private BigDecimal threeDifferenceamount;

    @Schema(description = "123代待审核提现")
    private BigDecimal threePendingWithdrawal;

    @Schema(description = "提现金额用户下1~n的")
    private BigDecimal subordinateWithdrawalAmount;

    @Schema(description = "复冲金额用户下1~n的")
    private BigDecimal subordinateRecoilAmount;

    @Schema(description = "充值金额用户下1~n的")
    private BigDecimal subordinateRechargeAmount;

    @Schema(description = "1~n代充提差")
    private BigDecimal subordinateDifferenceamount;

    @Schema(description = "123代累计团队收益")
    private BigDecimal threeCumulativeAmount;
}
